iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Mobile Development

好好用的 flutter 套件系列 第 24

好好用的 flutter 套件 - Day 24 rflutter_alert

  • 分享至 

  • xImage
  •  

需求

在app中常常會要跳出對話視窗,對話視窗又針對各功能有不同的顯示和需求,
那我們就來看一下 rflutter_alert 是否好用吧!!

rflutter_alert - Readme

是一個可自訂且易於使用的 Flutter 警報/彈出對話框。
您可以輕鬆建立可重複使用的警報樣式或新增任意數量的按鈕。
Alert(
      context: context,
      type: AlertType.error,
      title: "RFLUTTER ALERT",
      desc: "Flutter is more awesome with RFlutter Alert.",
      buttons: [
        DialogButton(
          child: Text(
            "COOL",
            style: TextStyle(color: Colors.white, fontSize: 20),
          ),
          onPressed: () => Navigator.pop(context),
          width: 120,
        )
      ],
    ).show();

rflutter_alert - Install

直接在 pubspec.yaml 加上 rflutter_alert: ^2.0.7,然後pub get 
dependencies:
 rflutter_alert: ^2.0.7

https://ithelp.ithome.com.tw/upload/images/20231008/201216438ZTyBVHbMW.png

rflutter_alert - Example

在 /lib/main.dart 加入 程式
import 'package:rflutter_alert/rflutter_alert.dart';

_onAlertButtonsPressed(context) {
    Alert(
      context: context,
      type: AlertType.warning,
      title: "鐵人賽警告",
      desc: "你確定要參加鐵人賽嗎?",
      buttons: [
        DialogButton(
          child: Text(
            "不參加",
            style: TextStyle(color: Colors.white, fontSize: 18),
          ),
          onPressed: () => Navigator.pop(context),
          color: Color.fromRGBO(0, 179, 134, 1.0),
        ),
        DialogButton(
          child: Text(
            "參加",
            style: TextStyle(color: Colors.white, fontSize: 18),
          ),
          onPressed: () => Navigator.pop(context),
          gradient: LinearGradient(colors: [
            Color.fromRGBO(116, 116, 191, 1.0),
            Color.fromRGBO(52, 138, 199, 1.0),
          ]),
        )
      ],
    ).show();
  }

  _onAlertWithCustomContentPressed(context) {
    Alert(
        context: context,
        title: "鐵人賽登入",
        content: Column(
          children: <Widget>[
            TextField(
              decoration: InputDecoration(
                icon: Icon(Icons.account_circle),
                labelText: '鐵人名稱',
              ),
            ),
            TextField(
              obscureText: true,
              decoration: InputDecoration(
                icon: Icon(Icons.lock),
                labelText: '鐵人密碼',
              ),
            ),
          ],
        ),
        buttons: [
          DialogButton(
            onPressed: () => Navigator.pop(context),
            child: Text(
              "登入",
              style: TextStyle(color: Colors.white, fontSize: 20),
            ),
          )
        ]).show();
  }
            ElevatedButton(
              child: Text('Day24 鐵人賽警告'),
              onPressed: () => _onAlertButtonsPressed(context),
            ),
            ElevatedButton(
              child: Text('Day24 鐵人賽登入'),
              onPressed: () => _onAlertWithCustomContentPressed(context),
            ),

執行結果

https://ithelp.ithome.com.tw/upload/images/20231008/2012164340J4oVoNnR.png
alert
https://ithelp.ithome.com.tw/upload/images/20231008/20121643mk50FxRHD0.png
login
https://ithelp.ithome.com.tw/upload/images/20231008/201216432YlRxt1HWC.png

心得

rflutter_alert 真的簡單又好用,可高度客制化,真的不錯用!!

上一篇
好好用的 flutter 套件 - Day 23 fluttertoast
下一篇
好好用的 flutter 套件 - Day 25 firebase_core
系列文
好好用的 flutter 套件30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言